package com.weic.dao;

import com.weic.pojo.SuperPojo;

import java.util.List;

/**
 * Dao接口，定义基本数据库操作方法
 */
public interface IDao {

    /**
     * 插入单个
     * @param superPojo
     * @return
     */
    int save(SuperPojo superPojo);

    /**
     * 批量插入
     * @param superPojos
     * @return
     */
    int[] batchSave(SuperPojo[] superPojos);

    /**
     * 批量插入
     * @param superPojoList
     * @return
     */
    int[] batchSave(List<SuperPojo> superPojoList);

    /**
     * 删除单个
     * @param superPojo
     * @return
     */
    int delete(SuperPojo superPojo);

    /**
     * 批量删除
     * @param superPojos
     * @return
     */
    int[] batchDelete(SuperPojo[] superPojos);

    /**
     * 批量删除
     * @param superPojoList
     * @return
     */
    int[] batchDelete(List<SuperPojo> superPojoList);

    /**
     * 根据主键删除
     * @param superPojo
     * @return
     */
    int deleteByPk(SuperPojo superPojo);

    /**
     * 根据条件删除
     * @param cond
     * @param args
     * @return
     */
    int deleteByCond(String cond,Object... args);

    /**
     * 根据主键更新
     * @param superPojo
     * @return
     */
    int update(SuperPojo superPojo);

    /**
     * 根据给定sql更新
     * @param sql
     * @param args
     * @return
     */
    int update(String sql,Object... args);


    /**
     * 根据条件更新
     * @param condSql
     * @param args
     * @return
     */
    int updateByCond(String condSql,Object... args);

    /**
     * 根据主键查找返回SuperPojo
     * @param pk
     * @return SuperPojo
     */
    SuperPojo queryByPk(Class clazz,String pk);





}
